package sf.database.template.sql;

import sf.tools.StringUtils;

/**
 *
 */
public class SqlHelp {
    /**
     * sql压缩
     * @param sql
     * @return
     */
    public static String compressSql(String sql) {
//        if (StringUtils.isNotBlank(sql)) {
//            sql = StringUtils.replace(sql, "\n", "").replaceAll("\\s+", " ");
//        }
        sql = replaceLineSql(sql);
        return sql;
    }

    /**
     * 快速替换压缩方法
     * @param sql
     * @return
     */
    public static String replaceLineSql(String sql) {
        StringBuilder sb = new StringBuilder();
        if (StringUtils.isNotBlank(sql)) {
            char pre = 0;
            for (int i = 0; i < sql.length(); i++) {
                char c = sql.charAt(i);
                if (c == '\n' || c == '\r' || c == '\t') {
                    c = ' ';
                }
                if (c == ' ' && pre == ' ') {
                    continue;
                }
                pre = c;
                sb.append(c);
            }
        } else {
            return sql;
        }
        return sb.toString();
    }
}
